The GdipGetImageRawFormat function returns a globally unique identifier (GUID) that indicates the file format of an image. The following constants represent the GUIDs that identify those file formats.
B96B3CAB-0728-11D3-9D7B-0000F81EF32E Indicates the Microsoft Windowsbitmap (BMP) format.
B96B3CAC-0728-11D3-9D7B-0000F81EF32E Indicates the Enhanced Metafile (EMF) format.
B96B3CB2-0728-11D3-9D7B-0000F81EF32E Indicates the Exif (Exchangeable Image File) format.
B96B3CB0-0728-11D3-9D7B-0000F81EF32E Indicates the Graphics Interchange Format (GIF) format.
B96B3CB5-0728-11D3-9D7B-0000F81EF32E Indicates the Icon format.
B96B3CAE-0728-11D3-9D7B-0000F81EF32E Indicates the JPEG format.
B96B3CAB-0728-11D3-9D7B-0000F81EF32E Indicates that the image was constructed from a memory bitmap.
B96B3CAF-0728-11D3-9D7B-0000F81EF32E Indicates the Portable Network Graphics (PNG) format.
B96B3CB1-0728-11D3-9D7B-0000F81EF32E Indicates the Tagged Image File Format (TIFF) format.
B96B3CA9-0728-11D3-9D7B-0000F81EF32E Indicates that Windows GDI+ is unable to determine the format.
B96B3CAD-0728-11D3-9D7B-0000F81EF32E Indicates the Windows Metafile Format (WMF) format.
The Graphics Interchange Format (GIF) and Tagged Image File Format (TIFF) image file formats enable you to store multiple frames in a single image file. Multiple frames in a GIF file are used for animation, so the frames are said to be in the time dimension. Multiple frames in a TIFF file are typically used as separate pages, so the frames are said to be in the page dimension.
The following constants represent globally unique identifiers (GUIDs) that identify the page and time dimensions.
7462DC86-6180-4C7E-8E3F-EE7333A7A483
84236F7B-3BD3-428F-8DAB-4EA1439CA315
6AEDBD6D-3FB5-418A-83A6-7F45229DC872
The GdpiSaveImageToFile, GdpiSaveImageToStream, GdpiSaveAdd and GdpiSaveAddImage functions receive an EncoderParameters structure that contains an array of EncoderParameter objects. Each EncoderParameter object has a globally unique identifier (GUID) data member that specifies the parameter category. The following constants represent GUIDs that specify the various parameter categories.
F2E455DC-09B3-4316-8260-676ADA32481C
66087055-AD66-4C7C-9A18-38A2310B8337
AE7A62A0-EE2C-49D8-9D07-1BA8A927596E
E09D739D-CCD4-44EE-8EBA-3FBF8BE4FC58
EDB33BCE-0266-4A77-B904-27216099E717
1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB
6D42C53A-229A-4825-8BB7-5C99E2B9A8B8
292266FC-AC40-47BF-8CFC-A85B89A655DE
3A4E2661-3109-4E56-8536-42C156E7DCFA
8D0EB2D1-A58E-4EA8-AA14-108074B7B6F9
24D18C76-814A-41A4-BF53-1C219CCCF797
63875E13-1F1D-45AB-9195-A29B6066A650
A219BBC9-0A9D-4005-A3EE-3A421B8BB06C
The following constants specify various pixel formats used in bitmaps.
196865 Specifies that the format is 1 bit per pixel, indexed.
197634 Specifies that the format is 4 bits per pixel, indexed.
198659 Specifies that the format is 8 bits per pixel, indexed.
397319 Specifies that the format is 16 bits per pixel; 1 bit is used for the alpha component, and 5 bits each are used for the red, green, and blue components.
1052676 Specifies that the format is 16 bits per pixel, grayscale.
135173 Specifies that the format is 16 bits per pixel; 5 bits each are used for the red, green, and blue components. The remaining bit is not used.
135174 Specifies that the format is 16 bits per pixel; 5 bits are used for the red component, 6 bits are used for the green component, and 5 bits are used for the blue component.
137224 Specifies that the format is 24 bits per pixel; 8 bits each are used for the red, green, and blue components.
2498570 Specifies that the format is 32 bits per pixel; 8 bits each are used for the alpha, red, green, and blue components.
925707 Specifies that the format is 32 bits per pixel; 8 bits each are used for the alpha, red, green, and blue components. The red, green, and blue components are premultiplied according to the alpha component.
139273 Specifies that the format is 32 bits per pixel; 8 bits each are used for the red, green, and blue components. The remaining 8 bits are not used.
1060876 Specifies that the format is 48 bits per pixel; 16 bits each are used for the red, green, and blue components.
3424269 Specifies that the format is 64 bits per pixel; 16 bits each are used for the alpha, red, green, and blue components.
1851406 Specifies that the format is 64 bits per pixel; 16 bits each are used for the alpha, red, green, and blue components. The red, green, and blue components are premultiplied according to the alpha component.
PixelFormat48bppRGB, PixelFormat64bppARGB, and PixelFormat64bppPARGB use 16 bits per color component (channel). Microsoft Windows GDI+ version 1.0 can read 16-bits-per-channel images, but such images are converted to an 8-bits-per-channel format for processing, displaying, and saving.
You can store and retrieve image metadata with the help of a PropertyItem structure. The type data member of a PropertyItem structure specifies the data type of the values stored in the value data member of that same PropertyItem structure.
The following constants can be assigned to the type data member of a PropertyItem structure.
PixelFormat4bppIndexed
197634
Specifies that the format is 4 bits per pixel, indexed.
PropertyTagTypeASCII
2
Specifies that the value data member is a null-terminated ASCII string. If you set the type data member of a PropertyItem object to PropertyTagTypeASCII, you should set the length data member to the length of the string including the NULL terminator. For example, the string HELLO would have a length of 6.
1 Specifies that the value data member is an array of bytes.
4 Specifies that the value data member is an array of unsigned long (32-bit) integers.
4 Specifies that the value data member is an array of pairs of unsigned long integers. Each pair represents a fraction; the first integer is the numerator and the second integer is the denominator.
3 Specifies that the value data member is an array of unsigned short (16-bit) integers.
9 Specifies that the value data member is an array of signed long (32-bit) integers.
10 Specifies that the value data member is an array of pairs of signed long integers. Each pair represents a fraction; the first integer is the numerator and the second integer is the denominator.
7 Specifies that the value data member is an array of bytes that can hold values of any data type.
Several image file formats enable you to store metadata along with an image. Metadata is information about an image, for example, title, width, camera model, and artist. Microsoft Windows GDI+ provides a uniform way of storing and retrieving metadata from image files in the Tagged Image File Format (TIFF), JPEG, Portable Network Graphics (PNG), and Exchangeable Image File (EXIF) formats.
In GDI+, a piece of metadata is called a property item, and an individual property item is identified by a numerical constant called a property tag. You can store and retrieve metadata by calling the GdipSetPropertyItem and GdipGetPropertyItem functions, and you don’t have to be concerned with the details of how a particular file format stores that metadata.
The following topics list and describe the property items supported by GDI+. The descriptions are brief and general so that they apply to a variety of file formats. For a detailed description of how a property item is used in a particular file format, see the specification for that file format. For links to several file format specifications, see Image File Format Specifications.For more information about metadata, see Reading and Writing Metadata and Image Property Tag Type Constants.
The following table lists the Microsoft Windows GDI+ image property tags in numerical order.
| Property Tag | Value |
|---|---|
| PropertyTagGpsVer | &h0000 |
| PropertyTagGpsLatitudeRef | &h0001 |
| PropertyTagGpsLatitude | &h0002 |
| PropertyTagGpsLongitudeRef | &h0003 |
| PropertyTagGpsLongitude | &h0004 |
| PropertyTagGpsAltitudeRef | &h0005 |
| PropertyTagGpsAltitude | &h0006 |
| PropertyTagGpsGpsTime | &h0007 |
| PropertyTagGpsGpsSatellites | &h0008 |
| PropertyTagGpsGpsStatus | &h0009 |
| PropertyTagGpsGpsMeasureMode | &h000A |
| PropertyTagGpsGpsDop | &h000B |
| PropertyTagGpsSpeedRef | &h000C |
| PropertyTagGpsSpeed | &h000D |
| PropertyTagGpsTrackRef | &h000E |
| PropertyTagGpsTrack | &h000F |
| PropertyTagGpsImgDirRef | &h0010 |
| PropertyTagGpsImgDir | &h0011 |
| PropertyTagGpsMapDatum | &h0012 |
| PropertyTagGpsDestLatRef | &h0013 |
| PropertyTagGpsDestLat | &h0014 |
| PropertyTagGpsDestLongRef | &h0015 |
| PropertyTagGpsDestLong | &h0016 |
| PropertyTagGpsDestBearRef | &h0017 |
| PropertyTagGpsDestBear | &h0018 |
| PropertyTagGpsDestDistRef | &h0019 |
| PropertyTagGpsDestDist | &h001A |
| PropertyTagNewSubfileType | &h00FE |
| PropertyTagSubfileType | &h00FF |
| PropertyTagImageWidth | &h0100 |
| PropertyTagImageHeight | &h0101 |
| PropertyTagBitsPerSample | &h0102 |
| PropertyTagCompression | &h0103 |
| PropertyTagPhotometricInterp | &h0106 |
| PropertyTagThreshHolding | &h0107 |
| PropertyTagCellWidth | &h0108 |
| PropertyTagCellHeight | &h0109 |
| PropertyTagFillOrder | &h010A |
| PropertyTagDocumentName | &h010D |
| PropertyTagImageDescription | &h010E |
| PropertyTagEquipMake | &h010F |
| PropertyTagEquipModel | &h0110 |
| PropertyTagStripOffsets | &h0111 |
| PropertyTagOrientation | &h0112 |
| PropertyTagSamplesPerPixel | &h0115 |
| PropertyTagRowsPerStrip | &h0116 |
| PropertyTagStripBytesCount | &h0117 |
| PropertyTagMinSampleValue | &h0118 |
| PropertyTagMaxSampleValue | &h0119 |
| PropertyTagXResolution | &h011A |
| PropertyTagYResolution | &h011B |
| PropertyTagPlanarConfig | &h011C |
| PropertyTagPageName | &h011D |
| PropertyTagXPosition | &h011E |
| PropertyTagYPosition | &h011F |
| PropertyTagFreeOffset | &h0120 |
| PropertyTagFreeByteCounts | &h0121 |
| PropertyTagGrayResponseUnit | &h0122 |
| PropertyTagGrayResponseCurve | &h0123 |
| PropertyTagT4Option | &h0124 |
| PropertyTagT6Option | &h0125 |
| PropertyTagResolutionUnit | &h0128 |
| PropertyTagPageNumber | &h0129 |
| PropertyTagTransferFunction | &h012D |
| PropertyTagSoftwareUsed | &h0131 |
| PropertyTagDateTime | &h0132 |
| PropertyTagArtist | &h013B |
| PropertyTagHostComputer | &h013C |
| PropertyTagPredictor | &h013D |
| PropertyTagWhitePoint | &h013E |
| PropertyTagPrimaryChromaticities | &h013F |
| PropertyTagColorMap | &h0140 |
| PropertyTagHalftoneHints | &h0141 |
| PropertyTagTileWidth | &h0142 |
| PropertyTagTileLength | &h0143 |
| PropertyTagTileOffset | &h0144 |
| PropertyTagTileByteCounts | &h0145 |
| PropertyTagInkSet | &h014C |
| PropertyTagInkNames | &h014D |
| PropertyTagNumberOfInks | &h014E |
| PropertyTagDotRange | &h0150 |
| PropertyTagTargetPrinter | &h0151 |
| PropertyTagExtraSamples | &h0152 |
| PropertyTagSampleFormat | &h0153 |
| PropertyTagSMinSampleValue | &h0154 |
| PropertyTagSMaxSampleValue | &h0155 |
| PropertyTagTransferRange | &h0156 |
| PropertyTagJPEGProc | &h0200 |
| PropertyTagJPEGInterFormat | &h0201 |
| PropertyTagJPEGInterLength | &h0202 |
| PropertyTagJPEGRestartInterval | &h0203 |
| PropertyTagJPEGLosslessPredictors | &h0205 |
| PropertyTagJPEGPointTransforms | &h0206 |
| PropertyTagJPEGQTables | &h0207 |
| PropertyTagJPEGDCTables | &h0208 |
| PropertyTagJPEGACTables | &h0209 |
| PropertyTagYCbCrCoefficients | &h0211 |
| PropertyTagYCbCrSubsampling | &h0212 |
| PropertyTagYCbCrPositioning | &h0213 |
| PropertyTagREFBlackWhite | &h0214 |
| PropertyTagGamma | &h0301 |
| PropertyTagICCProfileDescriptor | &h0302 |
| PropertyTagSRGBRenderingIntent | &h0303 |
| PropertyTagImageTitle | &h0320 |
| PropertyTagResolutionXUnit | &h5001 |
| PropertyTagResolutionYUnit | &h5002 |
| PropertyTagResolutionXLengthUnit | &h5003 |
| PropertyTagResolutionYLengthUnit | &h5004 |
| PropertyTagPrintFlags | &h5005 |
| PropertyTagPrintFlagsVersion | &h5006 |
| PropertyTagPrintFlagsCrop | &h5007 |
| PropertyTagPrintFlagsBleedWidth | &h5008 |
| PropertyTagPrintFlagsBleedWidthScale | &h5009 |
| PropertyTagHalftoneLPI | &h500A |
| PropertyTagHalftoneLPIUnit | &h500B |
| PropertyTagHalftoneDegree | &h500C |
| PropertyTagHalftoneShape | &h500D |
| PropertyTagHalftoneMisc | &h500E |
| PropertyTagHalftoneScreen | &h500F |
| PropertyTagJPEGQuality | &h5010 |
| PropertyTagGridSize | &h5011 |
| PropertyTagThumbnailFormat | &h5012 |
| PropertyTagThumbnailWidth | &h5013 |
| PropertyTagThumbnailHeight | &h5014 |
| PropertyTagThumbnailColorDepth | &h5015 |
| PropertyTagThumbnailPlanes | &h5016 |
| PropertyTagThumbnailRawBytes | &h5017 |
| PropertyTagThumbnailSize | &h5018 |
| PropertyTagThumbnailCompressedSize | &h5019 |
| PropertyTagColorTransferFunction | &h501A |
| PropertyTagThumbnailData | &h501B |
| PropertyTagThumbnailImageWidth | &h5020 |
| PropertyTagThumbnailImageHeight | &h5021 |
| PropertyTagThumbnailBitsPerSample | &h5022 |
| PropertyTagThumbnailCompression | &h5023 |
| PropertyTagThumbnailPhotometricInterp | &h5024 |
| PropertyTagThumbnailImageDescription | &h5025 |
| PropertyTagThumbnailEquipMake | &h5026 |
| PropertyTagThumbnailEquipModel | &h5027 |
| PropertyTagThumbnailStripOffsets | &h5028 |
| PropertyTagThumbnailOrientation | &h5029 |
| PropertyTagThumbnailSamplesPerPixel | &h502A |
| PropertyTagThumbnailRowsPerStrip | &h502B |
| PropertyTagThumbnailStripBytesCount | &h502C |
| PropertyTagThumbnailResolutionX | &h502D |
| PropertyTagThumbnailResolutionY | &h502E |
| PropertyTagThumbnailPlanarConfig | &h502F |
| PropertyTagThumbnailResolutionUnit | &h5030 |
| PropertyTagThumbnailTransferFunction | &h5031 |
| PropertyTagThumbnailSoftwareUsed | &h5032 |
| PropertyTagThumbnailDateTime | &h5033 |
| PropertyTagThumbnailArtist | &h5034 |
| PropertyTagThumbnailWhitePoint | &h5035 |
| PropertyTagThumbnailPrimaryChromaticities | &h5036 |
| PropertyTagThumbnailYCbCrCoefficients | &h5037 |
| PropertyTagThumbnailYCbCrSubsampling | &h5038 |
| PropertyTagThumbnailYCbCrPositioning | &h5039 |
| PropertyTagThumbnailRefBlackWhite | &h503A |
| PropertyTagThumbnailCopyRight | &h503B |
| PropertyTagLuminanceTable | &h5090 |
| PropertyTagChrominanceTable | &h5091 |
| PropertyTagFrameDelay | &h5100 |
| PropertyTagLoopCount | &h5101 |
| PropertyTagGlobalPalette | &h5102 |
| PropertyTagIndexBackground | &h5103 |
| PropertyTagIndexTransparent | &h5104 |
| PropertyTagPixelUnit | &h5110 |
| PropertyTagPixelPerUnitX | &h5111 |
| PropertyTagPixelPerUnitY | &h5112 |
| PropertyTagPaletteHistogram | &h5113 |
| PropertyTagCopyright | &h8298 |
| PropertyTagExifExposureTime | &h829A |
| PropertyTagExifFNumber | &h829D |
| PropertyTagExifIFD | &h8769 |
| PropertyTagICCProfile | &h8773 |
| PropertyTagExifExposureProg | &h8822 |
| PropertyTagExifSpectralSense | &h8824 |
| PropertyTagGpsIFD | &h8825 |
| PropertyTagExifISOSpeed | &h8827 |
| PropertyTagExifOECF | &h8828 |
| PropertyTagExifVer | &h9000 |
| PropertyTagExifDTOrig | &h9003 |
| PropertyTagExifDTDigitized | &h9004 |
| PropertyTagExifCompConfig | &h9101 |
| PropertyTagExifCompBPP | &h9102 |
| PropertyTagExifShutterSpeed | &h9201 |
| PropertyTagExifAperture | &h9202 |
| PropertyTagExifBrightness | &h9203 |
| PropertyTagExifExposureBias | &h9204 |
| PropertyTagExifMaxAperture | &h9205 |
| PropertyTagExifSubjectDist | &h9206 |
| PropertyTagExifMeteringMode | &h9207 |
| PropertyTagExifLightSource | &h9208 |
| PropertyTagExifFlash | &h9209 |
| PropertyTagExifFocalLength | &h920A |
| PropertyTagExifMakerNote | &h927C |
| PropertyTagExifUserComment | &h9286 |
| PropertyTagExifDTSubsec | &h9290 |
| PropertyTagExifDTOrigSS | &h9291 |
| PropertyTagExifDTDigSS | &h9292 |
| PropertyTagExifFPXVer | &hA000 |
| PropertyTagExifColorSpace | &hA001 |
| PropertyTagExifPixXDim | &hA002 |
| PropertyTagExifPixYDim | &hA003 |
| PropertyTagExifRelatedWav | &hA004 |
| PropertyTagExifInterop | &hA005 |
| PropertyTagExifFlashEnergy | &hA20B |
| PropertyTagExifSpatialFR | &hA20C |
| PropertyTagExifFocalXRes | &hA20E |
| PropertyTagExifFocalYRes | &hA20F |
| PropertyTagExifFocalResUnit | &hA210 |
| PropertyTagExifSubjectLoc | &hA214 |
| PropertyTagExifExposureIndex | &hA215 |
| PropertyTagExifSensingMethod | &hA217 |
| PropertyTagExifFileSource | &hA300 |
| PropertyTagExifSceneType | &hA301 |
| PropertyTagExifCfaPattern | &hA302 |
Descriptions of the property items supported by Windows GDI+.
The following table lists several documents that give detailed descriptions of how metadata is stored in image files.
| Document | Location |
|---|---|
| Tagged Image File Format (TIFF) Specification | https://www.loc.gov/preservation/digital/formats/fdd/fdd000022.shtml |
| Exif Specification | https://www.loc.gov/preservation/digital/formats/fdd/fdd000146.shtml |
| Portable Network Graphics (PNG) Specification | https://www.w3.org/TR/2003/REC-PNG-20031110/ |
| ISO/IEC 10918-1 (JPEG) | https://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=18902 |
| ICC.1:1998-09 | https://www.color.org |